package com.ujoin.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.ujoin.bean.Tag;
import com.ujoin.dao.imp.TagDAO;
import com.ujoin.util.JsonUtil;

/**
 * 
 * @author Daniel
 * 注：有两个给用户和活动贴标签的函数未完成，待确定标签格式后完成
 * 待测试
 *
 */
public class TagService {
	@Autowired
	private TagDAO tagDao;
	
	/**
	 * 新建标签
	 * @param tag
	 * @return Json
	 */
	public String createTag(Tag tag){
		JsonUtil jo = new JsonUtil();
		if (tagDao.findByTagName(tag.getTagName()) == null ){
			jo.getError();
			jo.setMessage("标签已存在");
		}
		else {
			jo.getSuccess();
			tagDao.save(tag);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 通过实例删除标签
	 * @param tag
	 * @return Json
	 */
	public String deleteTagByExample(Tag tag){
		JsonUtil jo = new JsonUtil();
		if (tagDao.findByExample(tag) == null) {
			jo.getError();
			jo.setMessage("标签不存在");
		}
		else {
			jo.getSuccess();
			tagDao.delete(tag);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 通过id删除标签
	 * @param tag
	 * @return Json
	 */
	public String deleteTagById(Tag tag){
		JsonUtil jo = new JsonUtil();
		Tag t = (Tag) tagDao.findByTagName(tag.getTagName()).get(0);
		if (t == null) {
			jo.getError();
			jo.setMessage("标签不存在");
		}
		else {
			jo.getSuccess();
			tagDao.delete(t);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 通过名字删除标签
	 * @param tag
	 * @return Json
	 */
	public String deleteTagByName(Tag tag){
		JsonUtil jo = new JsonUtil();
		Tag t = (Tag) tagDao.findById(tag.getTagId());
		if (t == null) {
			jo.getError();
			jo.setMessage("标签不存在");
		}
		else {
			jo.getSuccess();
			tagDao.delete(t);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 找到所有标签
	 * @param tag
	 * @return Json
	 */
	public String findAllTag(){
		JsonUtil jo = new JsonUtil();
		List list = tagDao.findAll();
		if (list.isEmpty()) {
			jo.getError();
			jo.setMessage("无记录");
		}
		else {
			jo.getSuccess();
			jo.setComponentList(list);
		}
		return jo.toJSONString();
	}
	
	/**
	 * 					以下待完成，确定tag存放格式后写
	 * 给用户加标签
	 * @param userId
	 * @return Json
	 */
	public String addTagToUser(int userId) {
		JsonUtil jo = new JsonUtil();
		
		return jo.toJSONString();
	}
	
	/**
	 * 给活动加标签
	 * @param activityId
	 * @return
	 */
	public String addTagToActivity(int activityId) {
		JsonUtil jo = new JsonUtil();
		
		return jo.toJSONString();
	}
}
